/**   
* js实现的map   
* Author：penghuaiyi   
* Date:2009-06-04   
*/    
  
//定义map   
var map;
function Map()     
{      
this.container = {};      
}      
  
//将key-value放入map中     
Map.prototype.put = function(key,value){      
try{      
    
if(key!=null && key != ""&&!this.containsKey(key))     
  this.container[key] = value;      
  
}catch(e){      
return e;      
}      
};      
  
//根据key从map中取出对应的value     
Map.prototype.get = function(key){      
try{      
  
return this.container[key];      
  
}catch(e){      
return e;      
}      
};      
  
//判断map中是否包含指定的key     
Map.prototype.containsKey=function(key){     
  
try{     
 for(var p in this.container)     
 {     
    if(p==key)     
       return true;     
 }     
  
 return false;     
  
}catch(e){     
 return e;     
}     
  
}     
  
//判断map中是否包含指定的value     
Map.prototype.containsValue = function(value){      
try{      
  
for(var p in this.container)     
{      
if(this.container[p] === value)      
   return true;      
}      
  
return false;      
  
}catch(e){      
return e;      
}      
};      
  
  
//删除map中指定的key     
Map.prototype.remove = function(key){      
try{      
	var a=new Map();
	        try {
	            for (x in this.container) {
	                if (x != key) {
	                    a.put(x, this.get(x));
	                }
	            }
	        } catch (e) {
	        }
	        return a;
     
  
}catch(e){      
return this;      
}      
};      
  
//清空map     
Map.prototype.clear = function(){      
try{      
delete this.container;      
this.container = {};      
  
}catch(e){      
  return e;      
}      
};      
  
//判断map是否为空     
Map.prototype.isEmpty = function(){      
    
if(this.keyArray().length==0)     
  return true;     
else      
  return false;     
};      
  
//获取map的大小     
Map.prototype.size=function(){     
  
return this.keyArray().length;     
}     
  
//返回map中的key值数组     
Map.prototype.keyArray=function(){     
  
  var keys=new Array();     
  for(var p in this.container)     
  {     
      keys.push(p);     
  }     
    
  return keys;     
}     
  
//返回map中的value值数组     
Map.prototype.valueArray=function(){     
   
  var values=new Array();     
  var keys=this.keyArray();     
  for(var i=0;i<keys.length;i++)     
  {     
     values.push(this.container[keys[i]]);     
  }     
       
  return values;     
}